# 数据库是一个用于存储数据的容器，是结构化的数据集合，作用是组织数据并存储数据
# 使用数据库管理系统(数据库软件)可以去获得库->表->数据，这种数据组织、存储的能力并借助SQL语言，完成对数据的增删改查等操作，实现对数据库的操作和管理
# SQL：全称Structured Query Language，结构化查询语言，是用于访问和处理数据库的标准的计算机语言
# SQL语言基于功能，可以划分为4类：
# 数据定义语言(DDL，Data Definition Language)：库的创建删除、表的创建删除等
# 数据操作语言(DML，Data Manipulation Language)：新增数据、删除数据、修改数据等
# 数据控制语言(DCL，Data Control Language)：新增用户、删除用户、密码修改、权限管理等
# 数据查询语言(DQL，Data Query Language)：基于需求查询和计算数据
# SQL语法特征：1，大小写不敏感 2，可以单行或多行书写，最后要以;分号结束 3，支持注释(单行注释：-- 注释内容（--后面一定要有一个空格）单行注释：#注释内容（#后面可以不加空格）多行注释：/*注释内容*/)

# DDL-库管理：
# 查看数据库：show databases;
# 使用数据库：use 数据库名称;
# 创建数据库：create database 数据库名称 [charset utf8]; #[]内的内容表示可选
# 删除数据库：drop database; 数据库名称
# 查看当前使用的数据库：select database();
# DDL-表管理：
# 查看有哪些表：show tables;  #注意需要先选择数据库
# 创建表：create table 表名称(
#     列名称 列类型,
#     列名称 列类型,
#     ......
# );
# 列类型有：int--整数、float--浮点数、varchar(长度)--文本，长度为数字，做最大长度限制、date--日期类型、timestamp--时间戳类型
# 删除表：drop table; 表名称
#       drop table if exists;

# DML：
# 数据插入：insert into 表[(列1,列2,......,列n)] values(值1,值2,......,值n)[,(值1,值2,......,值n),......,(值1,值2,......,值n)] #如果省略列名，那么括号中的值要一一对应列定义时的顺序，[]内的内容表示可选
# 数据删除：delete from 表名称 [where 条件判断];
# 数据更新：update 表名称 set 列=值 [where 条件判断];

# DQL:
# 数据查询：select 检索的列1[,列2...,列n]|* from 表 [where 条件判断];    #含义就是从(from)表中，选择(select)某些列进行展示,[]内的内容表示可选
# 分组聚合：select 分组列,聚合函数(计算列) from 表 [where 条件判断] group by 分组列;  #可以写多个聚合函数
# 聚合函数有：
# sum(列) 求和
# avg(列) 求平均值
# min(列) 求最小值
# max(列) 求最大值
# count(列|*) 求数量
# 结果排序：select 分组列,聚合函数(计算列) from 表 [where 条件判断] group by 分组列 order by 排序列 [asc|desc] limit n[,m];  #asc升序，desc降序，默认升序，limit子句限制返回结果集的数量，n表示取几条，有m则表示跳过前n条取m条数据
# 执行顺序：from -> where -> group by和聚合函数 -> select -> order by -> limit
